package testes;

import logica.pessoa.PessoaJuridica;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class TestaPessoaJuridica {
	
	private PessoaJuridica pessoaJuridica;
	private PessoaJuridica pessoaJuridica2;
	
	@Before public void inicializacao() throws Exception{
		pessoaJuridica = new PessoaJuridica("nome de empresario", null, null, null,"44.789.123-1234/11", "razaoSocial de alguma empresa", "444.555.666.888");
		pessoaJuridica2 = new PessoaJuridica("nome de empresario forte", null, null, null,"55.789.123-1234/11", "razaoSocial de outra empresa", "555.555.666.888");

	}
	
	
	@Test public void testaCNPJ(){
		try{
			Assert.assertEquals("44.789.123-1234/11", pessoaJuridica.getCNPJ());
			pessoaJuridica.setCNPJ(null);
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("CNPJ invalido", e.getMessage());
		}
		
		
		
		
		
		try{
			pessoaJuridica.setCNPJ("44.789.2aa-1234/11");
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("CNPJ invalido", e.getMessage());
		}
	
	
	
		try{
			pessoaJuridica.setCNPJ("44.789.245-1234/11.12");
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("CNPJ invalido", e.getMessage());
		}
		
		
		
		try{
			pessoaJuridica.setCNPJ("44.779.2 5-1234/11");
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("CNPJ invalido", e.getMessage());
		}
		
		
		
		
		try{
			pessoaJuridica.setCNPJ("55.789.123-1234/11");
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("CNPJ ja cadastrado", e.getMessage());
		}
	}
	
	
	
	
	@Test public void testaRazaoSocial(){
		
		try{
			pessoaJuridica.setRazaoSocial("r a z a o s o c ");
			
			Assert.fail();
		}
		
		catch (Exception e) {
			Assert.assertEquals("Razao Social invalida", e.getMessage());
		}
		
		
		
		
		try{
			pessoaJuridica.setRazaoSocial("r a 6 a o 7 o c ");
			
			Assert.fail();
		}
		
		catch (Exception e) {
			Assert.assertEquals("Razao Social invalida", e.getMessage());
		}
	}	
		
		
		
	@Test public void testaInscricaoEstadual(){
		
		try{
			Assert.assertEquals("555.555.666.888", pessoaJuridica2.getInscricaoEstadual());
			pessoaJuridica.setCNPJ(null);
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("Inscricao Estadual invalido", e.getMessage());
		}
		
		
		
		try{
			pessoaJuridica.setCNPJ("5 5.5 5.6 6.8 8");
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("Inscricao Estadual invalido", e.getMessage());
		}
		
		
		
		try{
			pessoaJuridica.setCNPJ("5a5.5b5.6c6.8d8");
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("Inscricao Estadual invalido", e.getMessage());
		}
		
		
		
		
		
		try{
			pessoaJuridica.setCNPJ("555.555.656.858.252");
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("Inscricao Estadual invalido", e.getMessage());
		}
		
		
		
		
		
		
		try{
			pessoaJuridica.setCNPJ("555.555.656858");
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("Inscricao Estadual invalido", e.getMessage());
		}
		
		
		
		
		
		try{
			pessoaJuridica.setCNPJ("555.555.666.888");
			
			Assert.fail();
		}
		catch (Exception e) {
			Assert.assertEquals("Inscricao Estadual ja cadastrda", e.getMessage());
		}
		
	}
}
